package com.good.jzhouse.tools;

import com.good.jzhouse.bean.Message;
import com.good.jzhouse.dao.MessageDao;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.IOException;
import java.sql.Timestamp;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * @Author: xiaolei
 * @Date: 2021/3/15 10:36
 */
//发送验证码
public class SendMsg {
        @Autowired

        private static String Url = "http://106.ihuyi.com/webservice/sms.php?method=Submit";

        public static Map<String,String> sendMessage(String phone) {

            HttpClient client = new HttpClient();
            PostMethod method = new PostMethod(Url);

            client.getParams().setContentCharset("GBK");
            method.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=GBK");

            int mobile_code = (int)((Math.random()*9+1)*100000);

            String content = new String("您的验证码是：" + mobile_code + "。请不要把验证码泄露给其他人。");

            NameValuePair[] data = {//提交短信
                    new NameValuePair("account", "C43280014"), //查看用户名 登录用户中心->验证码通知短信>产品总览->API接口信息->APIID
                    new NameValuePair("password", "8a6ded921771565c21db82b6dd5927d1"), //查看密码 登录用户中心->验证码通知短信>产品总览->API接口信息->APIKEY
                    //new NameValuePair("password", util.StringUtil.MD5Encode("密码")),
                    new NameValuePair("mobile", phone),
                    new NameValuePair("content", content),
            };
            method.setRequestBody(data);
            //保存返回信息
            Map<String,String> map = new HashMap<>();
            try {

                client.executeMethod(method);

                String SubmitResult =method.getResponseBodyAsString();

                //System.out.println(SubmitResult);

                Document doc = DocumentHelper.parseText(SubmitResult);
                Element root = doc.getRootElement();

                String code = root.elementText("code");
                String msg = root.elementText("msg");
                String smsid = root.elementText("smsid");

                System.out.println(code);
                System.out.println(msg);
                System.out.println(smsid);

                if("2".equals(code)){
                    System.out.println("短信提交成功");
                    MessageDao messageDao= (MessageDao)ApplicationUtil.getBeansByClass(MessageDao.class);    //得到DAO层对象
                    //把验证码信息存入数据库中
                    messageDao.dropInfoByNumber(phone);
                    messageDao.insertMessage(new Message(null,phone,mobile_code+"",new Timestamp(new Date().getTime())));

                    map.put("Success","true");

                }else {
                    map.put("Success","false");
                }



            } catch (HttpException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (DocumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }catch (Exception e){
                e.printStackTrace();
            }
            finally {

                return  map ;
            }

        }


}
